colorscheme:
yellow
violet
bw
Prihlásenie:
Login: Heslo:

Problem statement: zenit12ckd

D: Generátor mien
30 bodov Časový limit: 200 ms

Jedným z pozvaných hostí bola aj úspešná farmárka Mária. Vo svojej prednáške spomenula, ako na farme neustále experimentujú s novými kŕmnymi zmesami pre hospodárske zvieratá.

Keďže Máriine kŕmne zmesi idú na export do celého sveta, každú treba nejak pekne pomenovať, aby sa dobre predávala. Mária tak potrebuje vymyslieť veľa vhodných pomenovaní, ktoré budú pôsobiť atraktívne pre klientov. Jednou z možností, ako vytvoriť nové meno, je vhodne skombinovať dve už existujúce.

V tejto úlohe uvažujeme 26 malých písmen anglickej abecedy. Samohlásky sú hlásky zodpovedajúce písmenám a,e,i,o,u,y. Zvyšných 20 písmen predstavuje spoluhlásky. V korektnom mene sa nevyskytujú dve samohlásky po sebe a zároveň sa v ňom nevyskytujú tri spoluhlásky po sebe.

Ak máme slovo w = v1v2…vn, kde n je dĺžka slova a každé vi označuje jedno písmeno, potom pre každé 1 ≤ j ≤ n môžeme uvažovať slovo v1v2…vj. Takéto slová budeme volať prefixami slova w. Napríklad slovo zenit má prefixy z, ze, zen, zeni a aj zenit. Analogicky môžeme definovať aj sufixy, ktoré vznikajú z koncov slov.

Ak máme dve mená, potom môžeme vytvoriť tretie nasledovne: vezmeme nejaký prefix prvého mena a nejaký sufix druhého a tie zlepíme tak, že pôvodný prefix bude prefixom nového mena. Napríklad ak máme meno zenit a saman, tak dokážeme dostať nové meno ze-man. V tejto úlohe budeme navyše kombinovať spôsobom, že dve spájané časti vznikli z rôznych mien, aspoň dva znaky z každého mena ponecháme a aspoň dva znaky odrežeme. Napríklad spojenie zeni-man ani z-aman sme nedostali správnym spôsobom, pretože v prvom prípade sme odrezali len jedno písmeno a v druhom prípade sme v prvom mene ponechali len jedno písmeno a v druhom sme odrezali len jedno. Slovo ze-an bolo síce získané vhodným rozdelením, ale vadí nám, že obsahuje dve samohlásky po sebe.

Na vstupe je na prvom riadku počet mien N a na ďalších N riadkoch sú existujúce korektné mená. Sú to reťazce 4 až 10 znakov malej anglickej abecedy. Mien je medzi 2 a 10 vrátane a všetky sú rôzne.

Na prvý riadok výstupu vypíšte počet nových mien M. Ak je M kladné, tak na ďalších M riadkoch vypíšte tieto mená. Hoci niekedy môže meno vzniknúť viacerými spôsobmi, každé vypíšte len raz. Nepočítajte a nevypisujte mená, ktoré sa vyskytli na vstupe. Nové mená môžu mať aj viac ako 10 znakov. Mená vypíšte v lexikografickom usporiadaní. Pri lexikografickom porovnaní dvoch slov postupujeme zľava doprava a hľadáme prvé písmeno, v ktorom sa slová líšia. V prípade, že také písmeno neexistuje, potom je v usporiadaní skôr to slovo, ktoré je kratšie. Napríklad slovo sustaky je pred slovom svet, ktoré je skôr ako slovo sveter. Môžete predpokladať, že vstupy budú volené tak, aby mien na výstupe nebolo viac ako 1000.

> Príklady:

vstup

2
cerv
neler

    
  
výstup


2
celer
nerv

    
  
vstup

3
peter
sveter
lama

    
  
výstup


9
later
pema
peteter
petma
petter
svema
sver
svetma
svetter

    
  
vstup

3
lara
tara
mara

    
  
výstup

0

    
  




(C) MišoF, Zemčo. 2007 - 2013